#pragma once
/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Foundation Framework Class Library
 * Version 2.00
 * 
 * Socket Recieve Flags Enumeration
 *      Lists the options for use when reading data from a bound socket.
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
#include "stdafx.h"
using namespace System;

namespace Adaptive
{
	namespace Network
	{
		namespace Sockets
		{
			/// <summary>
			/// Lists the options for use when reading data from a bound socket.
			/// </summary>
			[Flags()]
			public enum class SocketRecieveFlags
			{
				/// <summary>
				/// Specifes no flags are set.
				/// </summary>
				NoFlags		=	0,
				/// <summary>
				/// Indicates that the reader peeks at the incoming data. The data is copied into the buffer, but is not removed 
				/// from the input queue.
				/// </summary>
				PeekOnly	=	MSG_PEEK,
				/// <summary>
				/// Indicates the reader is to process Out Of Band (OOB) data.
				/// </summary>
				OutOfBand	=	MSG_OOB,
				/// <summary>
				/// Indicates that the receive request will complete only when one of the following events occurs:<br/>
				/// <t/>The buffer supplied by the caller is completely full. <br/>
				/// <t/>The connection has been closed. <br/>
				/// <t/>The request has been canceled. <br/>
				/// </summary>
				WaitForAll	=	MSG_WAITALL
			};
		}
	}
}
